﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Style x:Key="CommonButton" TargetType="Button">
    <Setter Property="MinWidth" Value="100" />
    <Setter Property="Height" Value="25" />
  </Style>

  <Style x:Key="LinkButton" TargetType="Button">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="Button">
          <TextBlock TextDecorations="Underline">
            <ContentPresenter />
          </TextBlock>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Setter Property="Foreground" Value="Blue" />
    <Setter Property="Cursor" Value="Hand" />
    <Style.Triggers>
      <Trigger Property="IsMouseOver" Value="true">
        <Setter Property="Foreground" Value="Red" />
      </Trigger>
    </Style.Triggers>
  </Style>

  

  <!--Styling ScrollViewer-->

  <!-- All the following is required to Re-Style the ScrollViewer, see 
             http://msdn2.microsoft.com/en-us/library/aa970847(VS.85).aspx
             http://msdn2.microsoft.com/en-us/library/ms742173(VS.85).aspx
             for the default Stles that the ScrollViewer has out of the box
         -->

  <!-- Brushes used in Styling of ScrollViewer -->
  <SolidColorBrush x:Key="StandardBorderBrush" Color="#888" />
  <SolidColorBrush x:Key="StandardBackgroundBrush" Color="#FFF" />
  <SolidColorBrush x:Key="HoverBorderBrush" Color="#DDD" />
  <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="Gray" />
  <SolidColorBrush x:Key="SelectedForegroundBrush" Color="White" />
  <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
  <SolidColorBrush x:Key="NormalBrush" Color="#888" />

  <LinearGradientBrush x:Key="OrangeGradientBrush" EndPoint="1,0.5" StartPoint="0,0.5">
    <GradientStop Color="White" Offset="0" />
    <GradientStop Color="#FFE89A18" Offset="1" />
  </LinearGradientBrush>

  <SolidColorBrush x:Key="NormalBorderBrush" Color="#888" />
  <SolidColorBrush x:Key="HorizontalNormalBrush" Color="#888" />
  <SolidColorBrush x:Key="HorizontalNormalBorderBrush" Color="#888" />
  <LinearGradientBrush x:Key="ListBoxBackgroundBrush"
  StartPoint="0,0" EndPoint="1,0.001">
    <GradientBrush.GradientStops>
      <GradientStopCollection>
        <GradientStop Color="White" Offset="0.0" />
        <GradientStop Color="White" Offset="0.6" />
        <GradientStop Color="#DDDDDD" Offset="1.2"/>
      </GradientStopCollection>
    </GradientBrush.GradientStops>
  </LinearGradientBrush>
  <LinearGradientBrush x:Key="StandardBrush"
  StartPoint="0,0" EndPoint="0,1">
    <GradientBrush.GradientStops>
      <GradientStopCollection>
        <GradientStop Color="#FFF" Offset="0.0"/>
        <GradientStop Color="#CCC" Offset="1.0"/>
      </GradientStopCollection>
    </GradientBrush.GradientStops>
  </LinearGradientBrush>
  <SolidColorBrush x:Key="GlyphBrush" Color="#444" />
  <LinearGradientBrush x:Key="PressedBrush"
  StartPoint="0,0" EndPoint="0,1">
    <GradientBrush.GradientStops>
      <GradientStopCollection>
        <GradientStop Color="#BBB" Offset="0.0"/>
        <GradientStop Color="#EEE" Offset="0.1"/>
        <GradientStop Color="#EEE" Offset="0.9"/>
        <GradientStop Color="#FFF" Offset="1.0"/>
      </GradientStopCollection>
    </GradientBrush.GradientStops>
  </LinearGradientBrush>

  <!-- SrollViewer ScrollBar Repeat Buttons (at each end) -->
  <Style x:Key="ScrollBarLineButton" TargetType="{x:Type RepeatButton}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type RepeatButton}">

          <!--Background: NormalBrush-->

          <Border
          Name="Border"
          Margin="1"
          CornerRadius="2"
          Background="{DynamicResource OrangeGradientBrush}"
          BorderBrush="{StaticResource NormalBorderBrush}"
          BorderThickness="1">
            <Path
            HorizontalAlignment="Center"
            VerticalAlignment="Center"
            Fill="{StaticResource GlyphBrush}"
            Data="{Binding Path=Content,
				RelativeSource={RelativeSource TemplatedParent}}" />
          </Border>
          <ControlTemplate.Triggers>
            <Trigger Property="IsPressed" Value="true">
              <Setter TargetName="Border" Property="Background"
Value="{StaticResource PressedBrush}" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
              <Setter Property="Foreground"
Value="{StaticResource DisabledForegroundBrush}"/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
  <!-- SrollViewer ScrollBar Repeat Buttons (The part in the middle, 
             not the thumb the long area between the buttons ) -->
  <Style x:Key="ScrollBarPageButton" TargetType="{x:Type RepeatButton}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="IsTabStop" Value="false"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type RepeatButton}">
          <Border Background="Transparent" />
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
  <!-- ScrollViewer ScrollBar Thumb, that part that can be dragged
            up/down or left/right Buttons -->
  <Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="IsTabStop" Value="false"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="Template">
      <Setter.Value>
        <!--Background : {TemplateBinding Background}-->
        <ControlTemplate TargetType="{x:Type Thumb}">
          <Border
          CornerRadius="2"
          Background="{DynamicResource OrangeGradientBrush}"
          BorderBrush="{TemplateBinding BorderBrush}"
          BorderThickness="1" />
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <ControlTemplate x:Key="VerticalScrollBar"
  TargetType="{x:Type ScrollBar}">
    <Grid >
      <Grid.RowDefinitions>
        <RowDefinition MaxHeight="18"/>
        <RowDefinition Height="0.00001*"/>
        <RowDefinition MaxHeight="18"/>
      </Grid.RowDefinitions>
      <Border
      Grid.RowSpan="3"
      CornerRadius="2"
      Background="#F0F0F0" />
      <RepeatButton
      Grid.Row="0"
      Style="{StaticResource ScrollBarLineButton}"
      Height="18"
      Command="ScrollBar.LineUpCommand"
      Content="M 0 4 L 8 4 L 4 0 Z" />
      <Track
      Name="PART_Track"
      Grid.Row="1"
      IsDirectionReversed="true">
        <Track.DecreaseRepeatButton>
          <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageUpCommand" />
        </Track.DecreaseRepeatButton>
        <Track.Thumb>
          <Thumb
          Style="{StaticResource ScrollBarThumb}"
          Margin="1,0,1,0"
          Background="{StaticResource HorizontalNormalBrush}"
          BorderBrush="{StaticResource HorizontalNormalBorderBrush}" />
        </Track.Thumb>
        <Track.IncreaseRepeatButton>
          <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageDownCommand" />
        </Track.IncreaseRepeatButton>
      </Track>
      <RepeatButton
      Grid.Row="3"
      Style="{StaticResource ScrollBarLineButton}"
      Height="18"
      Command="ScrollBar.LineDownCommand"
      Content="M 0 0 L 4 4 L 8 0 Z"/>
    </Grid>
  </ControlTemplate>
  <!-- HorizontalScrollBar Template using the previously created Templates -->
  <ControlTemplate x:Key="HorizontalScrollBar"
  TargetType="{x:Type ScrollBar}">
    <Grid >
      <Grid.ColumnDefinitions>
        <ColumnDefinition MaxWidth="18"/>
        <ColumnDefinition Width="0.00001*"/>
        <ColumnDefinition MaxWidth="18"/>
      </Grid.ColumnDefinitions>
      <Border
      Grid.ColumnSpan="3"
      CornerRadius="2"
      Background="#F0F0F0" />
      <RepeatButton
      Grid.Column="0"
      Style="{StaticResource ScrollBarLineButton}"
      Width="18"
      Command="ScrollBar.LineLeftCommand"
      Content="M 4 0 L 4 8 L 0 4 Z" />
      <Track
      Name="PART_Track"
      Grid.Column="1"
      IsDirectionReversed="False">
        <Track.DecreaseRepeatButton>
          <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageLeftCommand" />
        </Track.DecreaseRepeatButton>
        <Track.Thumb>
          <Thumb
          Style="{StaticResource ScrollBarThumb}"
          Margin="0,1,0,1"
          Background="{StaticResource NormalBrush}"
          BorderBrush="{StaticResource NormalBorderBrush}" />
        </Track.Thumb>
        <Track.IncreaseRepeatButton>
          <RepeatButton
          Style="{StaticResource ScrollBarPageButton}"
          Command="ScrollBar.PageRightCommand" />
        </Track.IncreaseRepeatButton>
      </Track>
      <RepeatButton
      Grid.Column="3"
      Style="{StaticResource ScrollBarLineButton}"
      Width="18"
      Command="ScrollBar.LineRightCommand"
      Content="M 0 0 L 4 4 L 0 8 Z"/>
    </Grid>
  </ControlTemplate>
  <!-- Style for overall  ScrollBar -->
  <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Style.Triggers>
      <Trigger Property="Orientation" Value="Horizontal">
        <Setter Property="Width" Value="Auto"/>
        <Setter Property="Height" Value="18" />
        <Setter Property="Template"
  Value="{StaticResource HorizontalScrollBar}" />
      </Trigger>
      <Trigger Property="Orientation" Value="Vertical">
        <Setter Property="Width" Value="18"/>
        <Setter Property="Height" Value="Auto" />
        <Setter Property="Template"
  Value="{StaticResource VerticalScrollBar}" />
      </Trigger>
    </Style.Triggers>
  </Style>

  <!-- Style for overall  ScrollViewer -->
  <!--x:Key="FavsScrollViewer"-->
  <Style  TargetType="{x:Type ScrollViewer}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type ScrollViewer}">
          <Grid>
            <Grid.ColumnDefinitions>
              <ColumnDefinition />
              <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
              <RowDefinition/>
              <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <ScrollContentPresenter Grid.Column="0"/>

            <ScrollBar Name="PART_VerticalScrollBar" Grid.Column="1"
            Value="{TemplateBinding VerticalOffset}"
            Maximum="{TemplateBinding ScrollableHeight}"
            ViewportSize="{TemplateBinding ViewportHeight}"
            Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
            <ScrollBar Name="PART_HorizontalScrollBar"
            Orientation="Horizontal"
            Grid.Row="1"
            Grid.Column="1"
            Value="{TemplateBinding HorizontalOffset}"
            Maximum="{TemplateBinding ScrollableWidth}"
            ViewportSize="{TemplateBinding ViewportWidth}"
            Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>

          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <!--Styling ScrollViewe-->

  
</ResourceDictionary>